package com.wdl.modules.myhouse.security.dto.oauth2.weibo;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import javax.naming.NamingEnumeration;
import java.util.Date;
import java.util.List;

/**
 * id	int64	用户UID
 * idstr	string	字符串型的用户UID
 * screen_name	string	用户昵称
 * name	string	友好显示名称
 * province	int	用户所在省级ID
 * city	int	用户所在城市ID
 * location	string	用户所在地
 * description	string	用户个人描述
 * url	string	用户博客地址
 * profile_image_url	string	用户头像地址（中图），50×50像素
 * profile_url	string	用户的微博统一URL地址
 * domain	string	用户的个性化域名
 * weihao	string	用户的微号
 * gender	string	性别，m：男、f：女、n：未知
 * followers_count	int	粉丝数
 * friends_count	int	关注数
 * statuses_count	int	微博数
 * favourites_count	int	收藏数
 * created_at	string	用户创建（注册）时间
 * following	boolean	暂未支持
 * allow_all_act_msg	boolean	是否允许所有人给我发私信，true：是，false：否
 * geo_enabled	boolean	是否允许标识用户的地理位置，true：是，false：否
 * verified	boolean	是否是微博认证用户，即加V用户，true：是，false：否
 * verified_type	int	暂未支持
 * remark	string	用户备注信息，只有在查询用户关系时才返回此字段
 * status	object	用户的最近一条微博信息字段 详细
 * allow_all_comment	boolean	是否允许所有人对我的微博进行评论，true：是，false：否
 * avatar_large	string	用户头像地址（大图），180×180像素
 * avatar_hd	string	用户头像地址（高清），高清头像原图
 * verified_reason	string	认证原因
 * follow_me	boolean	该用户是否关注当前登录用户，true：是，false：否
 * online_status	int	用户的在线状态，0：不在线、1：在线
 * bi_followers_count	int	用户的互粉数
 * lang	string	用户当前的语言版本，zh-cn：简体中文，zh-tw：繁体中文，en：英语
 */
@Data
public class WeiboUserInfo {

    private long id;
    @JSONField(name = "screen_name")
    private String screenName;
    private String name;
    private String province;
    private String city;
    private String location;
    private String description;
    private String url;
    private WeiBoUserStatus status;
    @JSONField(name="profile_image_url")
    private String profileImageUrl;
    private String domain;
    private String gender;
    @JSONField(name = "followers_count")
    private int followersCount;
    @JSONField(name = "friends_count")
    private int friendsCount;
    @JSONField(name = "statuses_count")
    private int statusesCount;
    @JSONField(name="favourites_count")
    private int favouritesCount;
    @JSONField(name = "created_at")
    private String createdAt;
    private boolean following;
    @JSONField(name = "allow_all_act_msg")
    private boolean allowAllActMsg;
    @JSONField(name = "geo_enabled")
    private boolean geoEnabled;
    private boolean verified;
    @JSONField(name = "allow_all_comment")
    private boolean allowAllComment;
    @JSONField(name = "avatar_large")
    private String avatarLarge;
    @JSONField(name = "verified_reason")
    private String verifiedReason;
    @JSONField(name = "follow_me")
    private boolean followMe;
    @JSONField(name = "online_status")
    private int onlineStatus;
    @JSONField(name = "bi_followers_count")
    private int biFollowersCount;

    @Data
    public class WeiBoUserStatus {

        @JSONField(name = "created_at")
        private String createdAt;
        @JSONField(name = "id")
        private long id;
        @JSONField(name = "text")
        private String text;
        @JSONField(name = "source")
        private String source;
        @JSONField(name = "favorited")
        private boolean favorited;
        private boolean truncated;
        @JSONField(name = "in_reply_to_status_id")
        private String inReplyToStatusId;
        @JSONField(name = "in_reply_to_user_id")
        private String iReplyToUserId;
        @JSONField(name = "in_reply_to_screen_name")
        private String inReplyToScreenName;
        private String geo;
        private String mid;
        private List<String> annotations;
        @JSONField(name = "reposts_count")
        private int repostsCount;
        @JSONField(name = "comments_count")
        private int commentsCount;
    }

}
